/*
 * 描述： <描述>
 * 修改人： rain
 * 修改时间： 2016年8月23日
 * 项目： rainhy-config
 */
package com.rainhy.config.context;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.InitializingBean;

import com.rainhy.core.util.AssertUtils;

/**
 * 配置管理器建造者
 * 
 * @author rain
 * @version [版本号, 2016年8月23日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class ConfigContextManagerBuilder extends ConfigContextConfigurator implements InitializingBean {
    /** 配置管理器列表 */
    protected Map<String, ConfigManager> configManagerMapping = new HashMap<>();
    
    @Override
    public void afterPropertiesSet() throws Exception {
        super.afterPropertiesSet();
        Map<String, ConfigManager> configManagerMap = this.applicationContext.getBeansOfType(ConfigManager.class);
        AssertUtils.notEmpty(configManagerMap, "没有获取到一个[配置管理器建造者]!请实现一个 ConfigManager 接口,注入进来");
        this.configManagerMapping.putAll(configManagerMap);
        
        for (ConfigManager configManager : this.configManagerMapping.values()) {
            logger.debug("  加载配置管理器: {}", configManager.getClass().getName());
        }
    }
    
}
